703 VTAB 18:A$ = "Set Play Level (1-9)": GOSUB 6100: HTAB 28: GET A$:LV = VAL(A$): IF LV <1 THEN 703
705 PRINT CHR$(12): PRINT CHR$(20): RETURN
1000 B$ = " ":ML = 3840:TI = 2304: DIM L%(5,5),S%(5,5),P(19),P$(19,5),HS$(9,6),HS(9,6),CX(11),CY(11): GOSUB 40000: FOR I = 0 TO 19: FOR J = 0 TO 5: READ P$(I,J): NEXT :P(I) = I: NEXT
1002 FOR I = 0 TO 11: READ CX(I): NEXT : FOR I = 0 TO 11: READ CY(I): NEXT : GOSUB 1006: GOTO 1020
1006 VTAB 19:A$ = "Press a key": GOSUB 6100: GET A$: RETURN
1020 GOTO 20000
1025 GOSUB 6000
1030 FOR I = 0 TO 19:X = RND(1) *20:Y = P(X):P(X) = P(I):P(I) = Y: NEXT :PG = 0:GP = 0
1036 QU = 0:QT = 0:NC = 0:NM = 0:TU = 0
1040 IF SC THEN GOSUB 7008: GOTO 1042
1041 GOSUB 7000
1042 GM = P(PG): FOR I = 0 TO 4 STEP 2: FOR J = 1 TO 5:L%(I,J -1) = ASC( MID$ (P$(GM,I/2),J,1)) -65: NEXT : NEXT :L%(1,1) = -1:L%(1,3) = -1:L%(3,3) = -1:L%(3,1) = -1
1044 FOR I = 0 TO 4 STEP 2: FOR J = 1 TO 5:L%(J -1,I) = ASC( MID$ (P$(GM,I/2 +3),J,1)) -65: NEXT : NEXT : FOR I = 0 TO 4: FOR J = 0 TO 4:S%(I,J) = L%(I,J): NEXT : NEXT
1045 FOR J = 1 TO LV:Z = INT( RND(1) *2): IF Z THEN GOSUB 2100: GOSUB 2200: GOTO 1050
1046 GOSUB 2200: GOSUB 2100
1050 NEXT : FOR I = 3 TO 15: VTAB I: HTAB 20: PRINT SPC( 15): NEXT : VTAB 4: HTAB 25: PRINT "Playing": HTAB 25: PRINT "Level "LV
2010 HCOLOR= 6: FOR I = 2 TO 17 STEP 3: HPLOT I *7 +3 +((I/2) = INT(I/2)),28 TO I *7 +3 +((I/2) = INT(I/2)),148: HPLOT 18,I *8 +12 TO 122,I *8 +12: NEXT
2030 RETURN
2100 GOSUB 2300
2101 IF Y = -1 THEN Z = L%(X,0): FOR Q = 1 TO 4:L%(X,Q -1) = L%(X,Q): NEXT :L%(X,4) = Z: RETURN
2110 Z = L%(X,4): FOR Q = 3 TO 0 STEP -1:L%(X,Q +1) = L%(X,Q): NEXT :L%(X,0) = Z: RETURN
2200 GOSUB 2300
2201 IF Y = -1 THEN Z = L%(0,X): FOR Q = 1 TO 4:L%(Q -1,X) = L%(Q,X): NEXT :L%(4,X) = Z: RETURN
2210 Z = L%(4,X): FOR Q = 3 TO 0 STEP -1:L%(Q +1,X) = L%(Q,X): NEXT :L%(0,X) = Z: RETURN
7020 P = RND(1):P = PEEK(49152): IF P <128 THEN 7020
7025 POKE 49168,0
7030 IF P = 155 THEN GOSUB 8000
7050 IF P = 177 THEN PP = 1: RETURN
7065 IF P = 181 THEN GOSUB 8000
7066 IF P = 179 THEN GOSUB 700: GOTO 7008
7067 IF P = 180 THEN GOSUB 10000: GOTO 7000
7070 IF P < >178 THEN 7020
7080 QU = 0:LQ = 0: POP : GOTO 1100
7999 REM QUIT
8000 VTAB 18:A$ = "Do you want to quit? (Y/N)": GOSUB 6100
8010 GET A$
8020 IF A$ = "N" OR A$ = "n" THEN 90
8030 IF A$ < >"Y" AND A$ < >"y" THEN 8010
8035 GOTO 30000
10000 XH = 80: GOSUB 9: GOSUB 6150: VTAB 3: PRINT " You are shown a 5x5 grid with 21": PRINT "letters in it. The letters form 6": PRINT "five letter words; but they were"
10010 PRINT "messed up by turning the cylinders.";: PRINT "Your task is to get the words back": PRINT "by quick twists of the cylinders.": PRINT
10020 PRINT " Move the highlight arrow around": PRINT "the grid with the arrow keys. Press";: PRINT "RETURN to turn the cylinder in the": PRINT "direction the arrow points."
10025 PRINT : PRINT " A cylinder is a horizontal or": PRINT "vertical string of five letters.": PRINT "When turned, the farthest letter": PRINT "ends up next to the arrow and all": PRINT "others move one space."
10030 GOSUB 10040: GOTO 10065
10040 A$ = "|/-\":A = 0
10050 A = A +1:A = A -4 *(A = 5): VTAB 19: HTAB 35: PRINT MID$ (A$,A,1): IF PEEK(49152) <128 THEN 10050
10060 POKE 49168,0: RETURN
10065 GOSUB 9: GOSUB 6150: VTAB 3
10070 PRINT " The difficulty level determines": PRINT "how many twists are applied at the": PRINT "beginning to scramble the grid."
10100 PRINT : PRINT " Pressing `?' reveals the word that";: PRINT "goes where the cursor is pointing.": PRINT "Every hint you get lowers your": PRINT "final score."
10110 PRINT : PRINT " You need to complete three games": PRINT "on a level to be considered for": PRINT "the high score list."
10130 PRINT : PRINT " Thanks to Fender Tucker for his": PRINT "original program on our Commodore": PRINT "publication!"